home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 36 / qemmptch.zip / QEMMPTCH.TXT
Text File  |  1991-02-13  |  5KB  |  157 lines

  1. Quarterdeck Technical Note
  2.  
  3. Subject:  Patching QEMM-386 5.00, 5.10, 5.11, and 5.12 to resolve
  4. problems with programs that resize EMS or XMS handles
  5.  
  6. Background: Starting with QEMM-386 5.00, QEMM-386 supports both the EMS
  7. (Expanded Memory Specification), which governs access to expanded
  8. memory, and the more recent XMS (Extended Memory Specification), which
  9. governs access to extended memory.  Requests for EMS and for XMS memory
  10. are both filled from the same pool of QEMM-managed memory, and EMS and
  11. XMS handles (numbers that the memory manager returns to a program when
  12. the program takes a chunk of memory, so that the program can quickly
  13. identify the chunk when it next communicates with the memory manager)
  14. are managed together by QEMM-386.
  15.  
  16. Both EMS and XMS contain a call that programs can make to reallocate
  17. blocks of memory; that is, to take a handle that the program has already
  18. received and increase or decrease the chunk of memory to which the
  19. handle refers.  Users of QEMM-386 versions 5.00 through 5.12 may
  20. experience system instability under certain circumstances when a program
  21. makes an EMS or XMS call to increase the size of a handle.  The symptom
  22. is likely to be a system crash or a reboot.
  23.  
  24. Users of versions of QEMM-386 after version 5.12 should not experience
  25. this problem.  In the meantime, QEMM-386 can be patched to eliminate the
  26. problem.
  27.  
  28.  
  29. The following procedure is intended to prevent system crashes and
  30. reboots when Reallocate Memory EMS and XMS functions are used to
  31. increase the size of EMS and XMS handles.  This procedure is for use
  32. with QEMM-386 versions:
  33.  
  34. 5.10
  35. 5.11
  36. 5.12
  37.  
  38. ***************************************************
  39.  
  40. Do NOT use this patch for QEMM-386 5.0; a separate procedure for
  41. QEMM-386 5.0 is later in this technote.  If you are in doubt, go to the
  42. directory where the QEMM-386 files are located and check the date on the
  43. QEMM386.SYS file by issuing the DOS command:
  44.  
  45. DIR QEMM386.SYS
  46.  
  47. If the date on the file is
  48.  
  49. 5:10 am
  50. 5:11 am
  51. 5:12 am
  52.  
  53. then use the patch in this section. If there is no QEMM386.SYS file in
  54. this directory, then you probably have an earlier version of QEMM-386;
  55. go forward to the section that deals with the patch for QEMM-386 5.0.
  56.  
  57. ***************************************************
  58.  
  59. 1) Make a copy of the QEMM386.SYS file in your QEMM directory.  We are
  60. about to alter your current copy of QEMM386.SYS; the copy you make will
  61. serve as a backup in case this operation fails.
  62.  
  63. COPY C:\QEMM\QEMM386.SYS C:\QEMM\QEMM386.OLD
  64.  
  65. (If your QEMM386.SYS is not located in the QEMM directory of the C:
  66. drive, change the path accordingly.)
  67.  
  68. 2) Go to the DOS directory on the hard disk and type:
  69.  
  70. DEBUG C:\QEMM\QEMM386.SYS
  71.  
  72. (If your QEMM386.SYS is not located in the QEMM directory of the C:
  73. drive, change the path accordingly.)
  74.  
  75. Hit the Enter key; you should see the DEBUG prompt, which is a hyphen.
  76.  
  77. 3) At the DEBUG prompt, type:
  78.  
  79. S 100 L F000 75 6 1 0E
  80.  
  81. Hit the Enter key; DEBUG should return a segment address and an offset:
  82.  
  83. xxxx:yyyy
  84.  
  85. 4) At the DEBUG prompt again, use the segment address and offset that
  86. was just returned to give the DEBUG command:
  87.  
  88. E xxxx:yyyy EB
  89.  
  90. The address that DEBUG returned in step 3 should be used in place of the
  91. address xxxx:yyyy, which we use as an example.  Hit the Enter key; the
  92. DEBUG prompt should return in a moment.
  93.  
  94.  
  95. 5) At the DEBUG prompt, type
  96.  
  97. W
  98.  
  99. Hit the Enter key; DEBUG will announce that it is writing a certain
  100. number of bytes, then it will return the DEBUG prompt.
  101.  
  102. 6) At the DEBUG prompt, type
  103.  
  104. Q
  105.  
  106. Hit the Enter key to exit DEBUG and return to DOS.
  107.  
  108. 7) To double-check your patch, type the following from the DOS prompt in
  109. your DOS directory:
  110.  
  111. COMP C:\QEMM\QEMM386.SYS C:\QEMM\QEMM386.OLD
  112.  
  113. (If your QEMM386.SYS is not located in the QEMM directory of the C:
  114. drive, change the path accordingly.)
  115.  
  116. Hit the Enter key.  COMP should return:
  117.  
  118.  
  119. C:QEMM386.SYS and C:QEMM386.OLD
  120.  
  121. Compare error at OFFSET xxxx File 1 = EB
  122.  
  123. File 2 = 75
  124.  
  125. Eof mark not found
  126.  
  127. Compare more files (Y/N)?
  128.  
  129. The value xxxx after OFFSET will vary from version to version of QEMM
  130. 5.1, but the rest of the message should be the same: it tells us that
  131. there is exactly one byte difference between the files, and the
  132. differing byte is EB in QEMM386.SYS and 75 in QEMM386.OLD.  If COMP
  133. returns the message:
  134.  
  135. Files compare ok
  136.  
  137. ...then you probably failed to use DEBUG's W command to save your
  138. change, or you have compared the wrong files.  If COMP returns more than
  139. one compare error, or if the bytes returned by the compare error don't
  140. match those in the above example, the procedure has failed.  In this
  141. case, use the DOS command:
  142.  
  143. COPY C:\QEMM\QEMM386.OLD C:\QEMM\QEMM386.SYS
  144.  
  145. ... to restore the original file, and try again.
  146.  
  147. If the patch was successful, you should now reboot the system and test
  148. the patched version of QEMM- 386.  If the patched version of QEMM-386
  149. fails, see the section at the end of the technote on restoring your
  150. original copy.  Otherwise, you are finished with the patch.
  151. ---------------------------------------------------
  152.  
  153.  
  154. Note:
  155.  
  156.     The above patch *must* be applied to STANDARD MODE Win 3.00a users.
  157.